package QianFeng06.MathRandomDateDemo;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 * date类
 *      一般就使用get方法就行
 * Calendar类
 *      Calendar 对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值，
 *      例如，日语-格里高里历，日语-传统日历。Calendar 定义了某些日历字段返回值的范围，以及这些值的含义。
 * DateFormat类
 *      DateFormat 是日期/时间格式化子类的抽象类，它以与语言无关的方式格式化并解析日期或时间
 * SimpleDateFormat类
 *      SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
 *      它允许进行格式化（日期 -> 文本）、解析（文本 -> 日期）和规范化。
 **/
public class DateDemo {
    public static void main(String[] args) {
        //使用两个构造方法
        //Date(long date)参数是毫秒
        //Date()具体时间
        Date date = new Date();//分配 Date 对象并初始化此对象，以表示分配它的时间（精确到毫秒）。
        System.out.println(date);

        //Calendar类
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = new GregorianCalendar();
        int year = calendar1.get(Calendar.YEAR);//年
        int month = calendar1.get(Calendar.MONTH);//月
        int day = calendar1.get(Calendar.DAY_OF_MONTH);//日
        int hour = calendar1.get(Calendar.HOUR_OF_DAY);//小时
        int minute = calendar1.get(Calendar.MINUTE);//分钟
        int second = calendar1.get(Calendar.SECOND);//秒
        int millisecond = calendar1.get(Calendar.MILLISECOND);//毫秒
        StringBuilder stringBuilder = new StringBuilder(50);
        stringBuilder.append(year).append("年").append(month).append("月")
                .append(day).append("日").append(hour).append("时").append(minute).append("分")
                .append(second).append("秒").append(millisecond).append("毫秒");
        System.out.println(stringBuilder);

        //DateFormat
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        System.out.println(dateFormat.format(date));

    }
}
